package br.ufc.es.pds.mudproject.core;
import java.util.ArrayList;
import java.util.List;

public class Jogador  {

	private String nome;
	private String descricao;
	private int carisma;
	private int inteligencia;
	private List<Objeto> bolsa;
	private Ambiente ambienteAtual;	
	
	public Jogador( String nome , String descricao ){
		this.bolsa = new ArrayList<Objeto>();
		this.nome = nome;
		this.descricao = descricao;
		this.carisma = 5;
		this.inteligencia = 5;
		this.ambienteAtual = null;
	}
	
	public String pegarNome(){
		return nome;
	}
	
	public String pegarDescricao(){
		return descricao;
	}
	public int pegarCarisma(){
		return carisma;
	}
	
	public int pegarInteligencia(){
		return inteligencia;
	}
	
	public void aumentarCarisma( int valor ){
		if ( (carisma + valor) >= 10 ) {
			carisma = 10;
		} else {
			carisma += valor;
		}
	}
	
	public void diminuirCarisma( int valor ){
		if ( (carisma - valor) <= 0) {
			carisma = 0;
		} else {
			carisma -= valor;
		}
	}
	
	public void aumentarInteligencia( int valor ){
		if ( (inteligencia + valor) >= 10 ) {
			inteligencia = 10;
		} else {
			inteligencia += valor;
		}
	}
	
	public void diminuirInteligencia( int valor ){
		if ( (inteligencia - valor) <= 0) {
			inteligencia = 0;
		} else {
			inteligencia -= valor;
		}
	}
	
	public void adicionarObjeto( Objeto objeto ){
		bolsa.add(objeto);
	}
	
	public void removerObjeto( Objeto objeto ){
		bolsa.remove(objeto);
	}
	
	public void setAmbiente(Ambiente sala){
		this.ambienteAtual = sala;
	}
	
	public Ambiente pegarAmbiente() {
		return ambienteAtual;
	}
	
	public List<Objeto> pegarBolsa(){
		return bolsa;
	}
	
	public Objeto pegarObjeto(String objetoNome){
		for (Objeto objeto : bolsa) {
			if (objeto.pegarNome().equalsIgnoreCase(objetoNome)) {
				return objeto;
			}
		}
		return null;
	}
}
